查看原文
其他

UIWebView导致苹果审核被拒该怎么办?

王哲 COCOS 2022-06-10
UIWebView 的问题

苹果在 iOS 13 上,要求开发者必须用 WKWebView 替代 UIWebView,按照苹果 2019 年 12 月 13 日的文档里给出的时间要求是:


  • 2020 年 4 月,新应用必须使用 WKWebView 代替 UIWebView

  • 2020 年 12 月,应用更新必须使用 WKWebView 代替 UIWebView


注意一下这事的时间线:


  • 2019-09-05,Cocos 引擎开发组已经更新了 Cocos2d-x 和 Cocos Creator 里的代码完成 WKWebView 替换 UIWebView 的工作

  • 2019-09-20,苹果是正式推送 iOS 13 更新给消费者

  • 2019-12-13,苹果发出了强制升级 WKWebView 的通知


所以其实时间还是很充裕的,但大家可能也没太重视。今天已经 5 月 22 日了,所以新提交应用必须按要求完成替换。正好昨晚有开发者给我发来一个问题,苹果商店提交审核被拒,理由是:

ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more .


也就是说,如果你还在用带了 UIWebView 的引擎老版本,不升级到 WKWebView 的话,苹果 AppStore 审核已经不让通过了。


涉及的引擎版本

我罗列一下,引擎各产品线更新到 WKWebView 的情况如下:


也就是说,如果你用的是:


  • Cocos2d-x v3.17.2 以及更早版本

  • Cocos Creator v2.1.2 以及更早版本


那么不从引擎里替换掉 UIWebView 调用代码的话,将导致原生包在 AppStore 审核被拒。

Cocos Creator 3D 尚未添加 WebView 支持,所以不涉及。

修改方式

我不会简单地一句话描述 “请大家升级引擎版本” 来解决。


很多开发到中后期、甚至已经上线运营的游戏项目不太可能大动干戈升级整个引擎版本。我们只需要精准地动点儿小手术就行了。


  • Cocos2d-x 用户,可以根据 pull request(1) 来做手工合并。

  • Cocos Creator 用户,可以根据这个 pull request(2) 做手工合并。


虽然 Cocos 引擎团队会持续地升级兼容平台的新接口、新要求,但确实很难把几年前的所有历史版本全部对新接口适配一遍后重新发布,还请大家能够理解。


所以正确的解法就是:


1.
新立项的时候,尽量用最新版的引擎。Dashboard 功能的推出也是为了方便这一点。
2. 对于固定在老版本上的已有项目,根据上述 Pull Request 里改动的文件,自己做手工合并。


参考链接  

1.文档

https://developer.apple.com/news/?id=12232019b


2.Learn more

https://developer.apple.com/documentation/uikit/uiwebview


3.pull request(1)

https://github.com/cocos2d/cocos2d-x/pull/20098/files


4.pull request(2)

https://github.com/cocos-creator/cocos2d-x-lite/pull/1837/files


更多精彩:

Cocos Creator 物理刚体挖洞新方案(上)

Cocos Creator 物理刚体挖洞新方案(下)

腾讯光子团队是如何制作《最强魔斗士》的?

腾讯光子《最强魔斗士》3D开发经验分享

新书推荐|零基础入门小游戏开发

你还在熬夜加班写 bug? 让小秘书来帮你

Cocos 插件开发者的福音来了,余额提现秒到账

Creator 3D 官方中文视频教程,附素材源码

如何在 Creator 中优雅地嵌套 Prefab?

Analytics自定义事件功能详解,埋点分析利器

Cocos Creator 开发原生游戏体验如何

原生 3D 游戏《弹无虚发》是如何炼成的?

微信小游戏首包超出4M之后

技巧:微信如何设置星标??

前端开发者入门 Cocos Creator 必读

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存